A multi-channel GNSS (Global Navigation Satellite System) receiver has several channels to simultaneously track signals of a plurality of satellites, which can be of different navigation systems such as GPS, GLONASS, Galileo or SBAS (Satellite Based Augmentation System, which includes MSAS, EGNOS, WAAS and so on.) In general, each channel tracks a satellite signal and uses a matched filter (or a correlator) to improve the SNR (Signal to Noise Ratio) of the signal samples. The correlator multiplies the received signal samples with the locally generated replica signal samples and sums the products to generate signal samples of higher SNR. In order to maximize the SNR of the signals at the output of correlator, the local replica signal waveform generated by the receiver has to match the received signal waveform. A longer correlation time will yield signal samples of higher SNR. In addition, most GNSS systems use a signaling scheme to share the same radio navigation signal spectrum. For example, CDMA (Code Division Multiple Access) is used in GPS, Galileo and SBAS, where the transmitted data bits are modulated by a repeating PRN (Pseudo Random Noise) code sequence. The other systems use different signaling schemes to broadcast a plurality of satellite signals, such as FDMA (Frequency Division Multiple Access) which is used by GLONASS. In general, a receiver uses different local signal replica generators to correlate the received signal and thus find the targeted satellite signals.
After a satellite signal of rough frequency and delay time is acquired, the receiver has to track the satellite signal for obtaining more accurate frequency and delay time and then synchronize with the satellite. Meanwhile, the receiver has to continually decode the data bit stream transmitted by the satellite. In the signal acquisition/tracking/decoding process, the receiver processes the output of the correlator to estimate the signal parameters more precisely, such as the Doppler frequency, the code phase and the transmitted data bits. In one implementation, the correlator is implemented as a dedicated hardware to perform the high speed correlation operation. In another implementation, the correlator can be implemented as a software-based functional block. For example, the FFT (Fast Fourier Transform) based correlation technique can be used. The signal acquisition, tracking and decoding process require less computation burden compared with the correlation and thus can be implemented in another functional block, such as a multi channel shared hardware block, a CPU or a DSP.
FIG. 1 shows typical receiver architecture 10 of the CDMA system, such as GPS, Galileo and SBAS. In this architecture, several channel correlators CH1, CH2 . . . CHn, are used to perform signal correlation of multiple satellite signals respectively at the same time. The spread spectrum signal is received via an antenna 102 and amplified (by a preamplifer 104), down converted (by a down-converter 106) to the IF (Intermediate Frequency) stage. At this stage, the received signal is in analog form. Then, the received signal is converted into digital form by an ADC (analog-to-digital converter) 108. Also referring to FIG. 2, which shows a general architecture of a channel correlator CHn. The digital signal from the ADC 108 (shown in FIG. 1 and FIG. 2) is down converted by means of a carrier NCO 112 (Numerically Controlled Oscillator), phase shifters 114, 116 and mixers 121, 122. The mixed result is a complex signal with in-phase and quadrature components. The in-phase and quadrature components are subjected to multiplication in multipliers 141˜146 with reference PRN code generated by an E/P/L (Early/Prompt/Late) PRN code generator 120. The E/P/L PRN code generator 120 is controlled by a code NCO 123 to generate the despreaded signals IE, IP, IL and QE, QP, QL. These despreaded signals are respectively integrated in integration block 124. The integrated signals are led to a receiver processor 110. The beginning and end of the integration window of each integration block are controlled by a dump counter 126. For example, the PRN code used in the current GPS L1 civil signal is C/A code with period of one ms. The minimum integration length is usually limited by the PRN code period, one ms in this example. If the sampling frequency of the ADC is 5 MHz, there are 5000 samples in one ms. The receiver processor 110 uses a signal, Start, to control the start time point of the correlation. When the dump counter 126 receives Signal Start, it resets the accumulators 131˜136 used in the correlation and starts counting from 0. When it counts to 4999, the correlation values in the accumulators 131˜136 are latched and the receiver processor 110 is informed to process these values. The maximum of correlation duration is limited by the signal structure. For example, one data bit in the GPS L1 C/A code signal consists of twenty C/A code periods. Therefore, the phase of the received signal may be inverted every twenty ms due to the data bit modulation. In general, the maximum correlation duration is 10 ms if the information of data bit stream (including the bit timing and data bit values) is not available. The integration block 124 in FIG. 2 shows a form of coherent correlation, —of which the performance is limited by the data bit phase transition. This limitation can be removed by using incoherent correlation, which accumulates the squared coherent correlation values to extend the correlation duration. In one implementation, the receiver processor 110 uses the correlator output signals, IE, IP, IL, QE, QP and QL, to perform incoherent correlation. In another implementation, a hardware block is used to perform incoherent correlation and informs the receiver processor 110 to process the results. In any form of the correlation, the receiver processor 110 must control the start time of the correlation to maximize the output SNR.
In general, the receiver processor 110 adjusts the start time point of the correlation to match the data bit edge of the received signal in order to maximize the output SNR of the hardware correlator. When one of the correlators CH1˜CHn completes its correlation, the receiver processor 110 is interrupted to process the correlation result. The correlation duration for each satellite signal may be different. For example, we can use shorter correlation time to acquire a stronger signal rapidly. On the other hand, a weaker signal requires longer correlation time to improve the SNR at the correlator output. Furthermore, the times of arrival (TOA) of all the satellite signals are different. Therefore, the respective channel correlators complete their correlations at different time points. The receiver processor 110 will require an extremely high interrupt rate for processing each finished correlation instantly if it allows the start time points of correlations of different satellite signals to match the satellite's TOA. This is because the start time points and the end time points of correlations of different satellite signals are different. In order to simplify the design and reduce the interrupt rate of the receiver processor 110, the start time point of a correlation is usually limited. For example, the PRN code in the GPS L1 C/A signal and the SBAS signal is one ms in length. However, one data bit in L1 C/A signal comprises twenty C/A code periods and is twenty ms in length. One data symbol in the SBAS signal comprises two C/A code periods and is two ms in length. One of the proper designs of the receiver processor 110, which can track GPS L1 C/A and SBAS signals at the same time, is to use an interrupt rate of 1 KHz and common dump architecture. That is, the correlators are allowed to dump their correlation values to the receiver processor 110 at the predefined time points, which are one ms apart. Although the start time point of the local signal replica cannot match the TOA of the received signal exactly (the maximum absolute error is 0.5 ms), it is easy to design and control the receiver.
As mentioned previously, the integration and dump operation of the correlator is commonly controlled by a receiver processor 110 for all or several channels, that is, the beginning and end of the integration window (correlation window) are limited to the predefined time points. The integration window may not match the waveform of the incoming signal and may generate a maximum of mismatch error equal to 0.5 ms. This is not so bad for a GPS L1 C/A signal, for which an information element (i.e. a date bit) comprises twenty ms. However, for a SBAS signal (each data symbol comprising 2 ms), this is a serious problem.